#pragma once

#include "IDataGather.h"
typedef unsigned int uint;
typedef unsigned char byte;

enum FT_STATUS {
    FT_OK,
    FT_INVALID_HANDLE,
    FT_DEVICE_NOT_FOUND,
    FT_DEVICE_NOT_OPENED,
    FT_IO_ERROR,
    FT_INSUFFICIENT_RESOURCES,
};

class DataGatherHRF9828 : public IDataGather
{
public:
    DataGatherHRF9828();
    ~DataGatherHRF9828();    

    uint FT_ListDevices(uint pvArg1, char *pvArg2, uint dwFlags);
    uint FT_OpenEx(char *constCStrDeviceDescription, uint Flags, uint *Handle);
    uint FT_Write(uint Handle, byte *Buffer, uint BytesToWrite, uint *BytesWritten);
    uint FT_GetQueueStatus(uint Handle, uint *BytesWaiting);
    uint FT_Read(uint Handle, byte *Buffer, uint BytesToRead, uint *BytesReturned);
    uint FT_ResetDevice(uint Handle);
    uint FT_Close(uint Handle);
};